package cn.com.zero.base.util;

import cn.com.zero.base.constant.ZeroRegexPatternConstants;
import cn.hutool.core.util.StrUtil;

import java.util.regex.Pattern;

/**
 * @author xiongxj
 * @version 1.0.0
 * @Description 正则校验工具类
 * @createTime 2023/3/15 14:48
 */
public class RegexUtil {

    /**
     * 验证手机号格式
     *
     * @param mobile 手机号码
     * @return 验证结果 true 验证通过 false 验证不通过
     */
    public static boolean validateMobile(String mobile) {
        return validate(mobile, ZeroRegexPatternConstants.MOBILE_EX);
    }

    /**
     * 验证邮箱格式
     *
     * @param email 电子邮箱
     * @return 验证结果 true 验证通过 false 验证不通过
     */
    public static boolean validateEmail(String email) {
        return validate(email, ZeroRegexPatternConstants.EMAIL_EX);
    }

    /**
     * 验证字符串格式
     *
     * @param str   待验证字符串
     * @param regEx 格式
     * @return 验证结果 true 验证通过 false 验证不通过
     */
    public static boolean validate(String str, String regEx) {
        if (StrUtil.isEmpty(str)) {
            return false;
        }

        if (StrUtil.isEmpty(regEx)) {
            return false;
        }

        return Pattern.compile(regEx).matcher(str).matches();
    }

}
